\documentclass[a4paper, 11pt, oneside]{article}

\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{booktabs}
\usepackage{rotating}
\usepackage{colortbl}
\usepackage{listings}


%espaciado
\usepackage{setspace}
\onehalfspacing
\setlength{\parindent}{0pt}
\setlength{\parskip}{2.0ex plus0.5ex minus0.2ex}


%margenes según n. icontec
\usepackage{vmargin}
\setmarginsrb           { 4.0cm}  % left margin
                        { 3.0cm}  % top margcm
                        { 2.0cm}  % right margcm
                        { 3.0cm}  % bottom margcm
                        {  10pt}  % head height
                        {0.25cm}  % head sep
                        {   9pt}  % foot height
                        { 0.3cm}  % foot sep


% inserción url's notas de pie.
\usepackage{url}


% Paquetes de la AMS:
\usepackage{amsmath, amsthm, amsfonts}

%gráficos

\usepackage{graphicx}%PDFLatex
%\DeclareGraphicsExtensions{.png,.pdf,.jpg}
\usepackage{subfig}
\usepackage{wrapfig}

\usepackage{verbatim}

\def\RR{\mathbb{R}}
\def\ZZ{\mathbb{Z}}
\newcommand{\abs}[1]{\left\vert#1\right\vert}
\DeclareMathOperator{\Jac}{Jac}

\newenvironment{mylisting}
{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\scriptsize\bfseries}
{\end{list}}



\begin{document}
	


% \abstract{Esto es una plantilla simóíéññññple para un artculo en \LaTeX.}

\begin{center}
 \section*{Página Nota de aceptación}
\end{center}
\clearpage
\renewcommand\contentsname{\centering Tabla de Contenidos}
\tableofcontents
\clearpage

\listoffigures
\clearpage

\begin{center}
 \section*{GLOSARIO}
\end{center}



\clearpage


\begin{center}
 \section*{RESUMEN}
\end{center}

Con este proyecto se pretende dar a conocer a las personas como es el manejo interno de una librería grafica, en este caso una librería grafica 

\clearpage

\begin{center}
 \section{INTRODUCCIÓN}
\end{center}
\subsection{Planteamiento del problema}

S
X3DOM, Firefox Canvas 3D, Opera Canvas 3D, O3D, etc. Todas estas
tecnologías están relacionadas de alguna manera con los plugins. Entre la lista
de este tipo de herramientas se encuentra una nueva tecnología que permite el
manejo de este mismo contenido 3D en la web, con la diferencia de que no hace
uso de plugins. Es el estándar Web GL, el cual es una aplicación nativa de los



\begin{center}
 \section{JUSTIFICACIÓN}
\end{center}

Se quiere iniciar la investigación sobre el desarrollo de contenido 3D en la Web
sin hacer uso de plugins, ya que después de hacer un sondeo entre cierta
cantidad de tecnologías   utilizadas para este fin, se llega a la siguiente
conclusión: de una muestra de 48 tecnologías Web 3D existentes en donde se
tuvieron en cuenta los siguientes parámetros: ``nombre de la tecnología'',
``plataforma'' y si es ``necesario un plugin''. Además de esto las tecnologías allí
mencionadas se clasificaron en, tecnologías Web 3D más conocidas, las que están
orientadas a CAD CAM \footnote{Tomado de:http://www3.uji.es/~jperis/dfao/apuntes/tema1.pdf CAD CAM: Disciplina que estudia el uso de sistemas informáticos
como herramienta de soporte en todos los procesos involucrados en el diseño y la fabricación de cualquier tipo de producto. Estas
están orientadas a la ingeniería simultanea permitiendo ver modelos, editarlos, obtener medidas físicas etc.
M.MUNETA, M. LUISA, F.MINDÁN, JESUS, R. REY, GREGORIO. ``Últimas Tendencias en Gráficos Web 3D Para internet''.
Universidad Politécnica de Madrid. Departamentos.unican.es/digteg/ingegraf/cd/ponencias/294.pdf.
} y tecnologías de menor impacto. Deduciendo a partir de
esa información que el 75\% de las tecnologías empleadas para trabajar contenido
3d en la Web, hacen uso de algún plugin y el que el 25\% restante no hace uso de
ellos. El no hacer uso de plugins facilita la visualización inmediata del contenido
de la(s) imagen(es) de una página web, un vídeo, el chat, o algún programa.
Además el tema de gráficos 3D en la Web, es relativamente nuevo ya que inicio
desde el año 2006 con los primeros experimentos que hizo Mozilla para un
Canvas 3D y empresas grandes como Google le están apostando a estas nuevas
formas de desarrollo.


\clearpage

\begin{center}
\section{OBJETIVOS}
\end{center}

\subsection{Objetivo General}
Desarrollar un prototipo de librería gráfica para las etapas de transformación de coordenadas y proyección de imágenes 3D animadas,
basándose en la especificación estándar Web GL y HTML 5.


\subsection{Objetivos Específicos}


siendo este procedimiento muy parecido a como se manejan las transacciones en bases de datos, donde lo que se hace es iniciar ciertas acciones y finalmente confirmarlas\footnote{LUBBERS, Peter. ALBERS, Brian. SALIM, Frank.Pro HTML5 Programming: powerful API's for Richer Internet Application Development.[en linea], 304 P. ISBN 978-1-4302-2791-5}. Este elemento Canvas tiene junto con el HTML 5 un gran potencial en aplicaciones utiles\footnote{KAMEL BOULOS, Maged. WARREN, Jeffrey. GONG, Jianya. YUE, Pen. Web GLS in practice VIII: HTML5 and the canvas element for interactive online mapping.[en linea], 2011 [citado 05 Marzo 2011]. Disponible en internet: http://www.ij-healthgeographics.com/content/9/1/14}, puede trabajar como otra simple tecnología alternativa web3D; y su API soporta las mismas operaciones de dibujo en dos dimensiones como lo hacen los sistemas operativos modernos



\subsection{Conociendo el Estándar Web GL}

La especificación estándar Web GL (Web Graphics Library) desarrollada para desplegar gráficos 3D en la Web, es una especificación multiplataforma basada en Open GL ES.2.0 la cual aprovecha la potencia de éste para poder renderizar gráficos 3D acelerados por hardware, sin la necesidad de utilizar plugins.\\
Web GL creada por el consorcio de tecnología Khronos Group sin ánimo de lucro puede ser usado por los desarrolladores para implementar en la web diferentes tipos de contenido 3D. El consorcio creador de esta especificación ha lanzado la versión 1.0.\\
Como la idea es iniciar el desarrollo de una librería gráfica para desplegar imágenes 3D en la Web; se va a utilizar la especificación estándar Web GL, la cual se puede describir como una serie de requerimientos para realizar determinadas cosas, como son escenas 3D que pueden ser visualizadas en un navegador, tales como Mozilla Firefox, Chrome, Opera etc.\\
Los términos estándar y especificación se utilizan sin distinción alguna, pero es importante conocer la diferencia entre estos dos términos.\\
Cuando se habla de un estándar, se dice que es un formato, tecnología o método 	que un organismo oficial de estandarización ha ratificado. Pero en cambio si esa tecnología, método o formato aun no ha sido aprobado por algún organismo oficial, se habla de una especificación. Existen casos donde el uso de una especificación es extendido, aquí es donde puede ser considerada como un estándar.\\
Por ejemplo en el lenguaje Java es Oracle el que define el estándar y aunque se permite la participación en algún momento, son ellos (Oracle) quienes realmente deciden como debe ser el estándar. De allí la diferencia entre estándares abiertos y estándares controlados por una entidad privada. Los estándares abiertos a diferencia de los privados, son especificaciones disponibles al público para lograr un fin específico; ésta debe ser desarrollada abiertamente a todas las personas y garantizar que cualquiera la puede utilizar sin necesidad de pagar o rendir algún tipo de condiciones a otro. La finalidad es permitir que todos puedan implementar el estándar, para de esta manera aumentar la compatibilidad e interoperabilidad entre distintos componentes de Software o Hardware. \\
Los estándares abiertos generan un mercado libre y muy dinámico, ya que al no haber restricciones en su uso, lo mas natural es que sobre ellos construyan otros y asi sucesivamente.\\
En los estándares informáticos no abiertos, los que poseen las patentes de Software, pueden disponer e imponer cargos u otros términos de licencia en las implementaciones de dichos estándares.\\ Web GL definido por un grupo donde participan entidades con diferentes intereses, hace que hasta cierto punto se puede considerar estándar abierto utilizado por las personas que deseen realizar aplicaciones que cumplan dicho estándar, garantizando por ejemplo, en el caso del proyecto que se esta trabajando, que varios navegadores puedan reproducir de manera idéntica una aplicación.\\



Para empezar a trabajar con el estándar Web GL, es importante conocer como se puede incluir código Web GL en HTML y los pasos a seguir son los siguientes:\\

\begin{itemize}
	\item Definir en la etiqueta \textit{$<body>$} la función que se va a encargar de la interfaz gráfica.
	\item Luego se define el Canvas, se le asigna una etiqueta que ayuda a referenciarlo y después se define su tamaño.
	\item A continuación se deben cargar todos los scripts externos que se vayan a utilizar. Aquí van incluidos los propios de la API Web GL y los que se necesitan para trabajar con matrices.
	\item Después de tener los tres pasos anteriores listos, se puede comenzar a programar el script en Web GL.\\ Al iniciar la página se debe señalar la función que se va a cargar a la vez que el código.\\
Aquí se debe inicializar el Canvas y esto se hace llamando a la función initGL(), donde además se comprueba que el navegador que se esté utilizando soporte WebGL. Seguido esto se inicializan los Shaders, como también los buffers. La idea es centrarse en los buffers ya que en esta función es donde se definen los objetos a dibujar en la escena \footnote{DIEZ, ANTUÑA. Eduardo. SOLARES, DÍAZ. Aitor. LOSADA, GONZÁLEZ. Daniel. Desarrollo en WebGL. Universidad de Oviedo}.
\end{itemize}



Para el escalamiento se usa \textit{glScalef()}, que al igual que la función para trasladar recibe 3 parámetros (a,b,c), los cuales al ser multiplicados por las coordenadas iniciales (X*a,Y*b,Z*c) producen el escalado del objeto. El cual puede ser de dos tipos, escalado uniforme o un escalado no uniforme. La sintaxis es:

Con respecto a la proyección se debe decir que para esta parte de la librería gráfica, las funciones no van a ser las mismas de Open GL, si no que se van a trabjar otras, que de todas formas harán que el resultado sea muy parecido al que debe ser entregado. Y esto es debido a que como lo hacen en Open GL, lo plantean de manera que mas adelante estas funciones sirvan de complemento a la etapa de Clipping o recorte. Pero como desde un principio se dejo claro cuales iban a ser etapas a implementar. La idea es que esa etapa de recorte se trabaje junto con las otras etapas restantes, en otro proyecto u otros proyectos.\\
Las funciones que recomienda Open GL tienen la siguiente sintaxis:\\


\paragraph{Estructura de un programa}

El siguiente ejemplo es hecho con la librería propuesta para este trabajo.
MOSTRAR RESULTADOS GRAFICOS DEL EJEMPLO COMPLETO DE LA LIBRERIA


Los navegadores que se utilizan para mostrar el funcionamiento de esta parte de la librería gráfica son: Chrome, Moxilla Firefox, Opera e Internet Explorer.
MOSTRAR FUNCIONANDO LA LIBRERIA EN ESTOS NAVEGADORES


\clearpage


\begin{center}
\section{CONCLUSIONES}
\end{center}

No solo se quería dejar la implementación de la librería y ya, también se queria lograr que las personas con este documento pudieran conocer de fondo como es una librería gráfica. Muchos de los conceptos que aquí se utilizan, en algún momento del pregrado fueron vistos.

Se mostró que el algebra lineal y algunos conceptos matemáticos son la base fundamental para el desarrollo de la librería y para lograr los resultados que se necesitaban.

\clearpage

\paragraph{TRABAJOS FUTUROS}

La continuación de las otras etapas de la librería gráfica, las cuales son: la etapa de sombras, recorte o clipping, cálculo de la iluminación y Z-buffering. 

Utilizar la librería gráfica para complemento de otros trabajos de grado o para investigación.





\clearpage



\begin{center}
\section*{BIBLIOGRAFIA}
\end{center}

WALSH, Aaron E. COUCH, Justin. Core Web 3D. Prentice Hall, Inc. 2001. ISBN 130857289.


LUBBERS, Peter. ALBERS, Brian. SALIM, Frank. PRO HTML5 Programming. Powerful APIs for Richer Internet Application Development. 2010. 284 p. ISBN(electronic): 978-1-4302-2791-5


GONZALEZ LOPEZ, Pascual. GARCIA, Jesús. CONSUEGRA, Bleda. Informática Gráfica. [en línea]. Primera ed. Colección Ciencia y Técnica Num. 19, 1998. ISBN 84-89958-23-8.


EGUÍLUZ PÉREZ, Javier. Introducción a Xhtml. [en línea]. 2008. 190 p. Disponible en internet:http://www.librosweb.es/.


KRRONOS Group. WebGL Specification. Working Draft. [en línea]. Actualizada al 11 de Noviembre de 2010. Disponible en internet:\\https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html. 


\end{document}







